package com.ruoyi.water.domain.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;

/**

 单个表具档案 DTO（文档 4.2 响应的 data.records 元素）
 */
@Data
@Schema (name = "WaterMeterArchiveDTO", description = "单个表具档案信息")
public class WaterMeterArchiveDTO {
    @Schema (description = "表具 ID", example = "1")
    private Integer id;
    @Schema (description = "创建时间", example = "2023-11-30 17:13:52")
    private String gmtCreate;
    @Schema (description = "修改时间", example = "2023-12-01 13:56:58")
    private String gmtModify;
    @Schema (description = "表具类型（0 = 电表，1 = 水表）", example = "0")
    private Integer type;
    @Schema (description = "采集点", example = "2")
    private Integer point;
    @Schema (description = "区域 ID", example = "1")
    private Integer areaId;
    @Schema (description = "所属建筑 ID", example = "2")
    private Integer architectureId;
    @Schema (description = "采集器 ID", example = "12")
    private Integer gatherId;
    @Schema (description = "表具编号", example = "448000Fa00101D10")
    private String number;
    @Schema (description = "表具名称", example = "进线柜")
    private String name;
    @Schema (description = "表具密码", example = "02000000")
    private String password;
    @Schema (description = "485 地址", example = "001600305208")
    private String address485;
    @Schema (description = "生产厂家", example = "null")
    private String maker;
    @Schema (description = "厂家编码", example = "null")
    private String makerCode;
    @Schema (description = "资产编号", example = "-1")
    private Integer assetNo;
    @Schema (description = "部门 ID", example = "1")
    private Integer departmentId;
    @Schema (description = "所在楼层", example = "1")
    private Integer floor;
    @Schema (description = "表具型号 ID", example = "10009")
    private Integer meteStyleId;
    @Schema (description = "表具状态（1 = 正常）", example = "1")
    private Integer status;
    @Schema (description = "运行状态（0 = 正常）", example = "0")
    private Integer runningState;
    @Schema (description = "计算策略", example = "0")
    private Integer calculationStrategy;
    @Schema (description = "倍率", example = "100")
    private Integer beilv;
    @Schema (description = "修正值", example = "0")
    private Integer xiuzheng;
    @Schema (description = "最后数据时间", example = "2024-09-13 14:30:00")
    private String lastDataTime;
    @Schema (description = "最后数据值（表码）", example = "4558.62")
    private Double lastDataValue;
    @Schema (description = "最后数据值（累计示数）", example = "455862")
    private Long lastDataValueZY;
    @Schema (description = "数据来源（1 = 采集）", example = "1")
    private Integer dataFrom;
    @Schema (description = "规格代码", example = "01")
    private String specification;
    @Schema (description = "是否参与计算（1 = 是）", example = "1")
    private Integer isComputation;
    @Schema (description = "是否重要表具（1 = 是）", example = "1")
    private Integer isImportant;
    @Schema (description = "扩展信息（JSON 字符串）")
    private String extra;
    @Schema (description = "用户编号", example = "420800A0012010001")
    private String consumerNum;
    @Schema (description = "用户名称", example = "null")
    private String consumerName;
    @Schema (description = "用户电话", example = "2")
    private String consumerPhone;
    @Schema (description = "用户地址", example = "null")
    private String consumerAddress;
    @Schema (description = "房间人数", example = "1")
    private Integer roomManCount;
    @Schema (description = "价格 ID", example = "7")
    private Integer price_ID;
    @Schema (description = "工作时间", example = "null")
    private String workingTime;
    @Schema (description = "工作日模板 ID", example = "null")
    private Integer workingDayTemplateId;
    @Schema (description = "一级分项", example = "E")
    private String subentry_First;
    @Schema (description = "二级分项", example = "0")
    private String subentry_Second;
    @Schema (description = "三级分项", example = "0")
    private String subentry_Third;
    @Schema (description = "采集器地址", example = "000000000000")
    private String collectorAddress;
    @Schema (description = "供电状态（1 = 正常）", example = "1")
    private String supplyState;
    @Schema (description = "用途类型", example = "7")
    private Integer useStyle;
    @Schema (description = "数据计算策略", example = "0")
    private Integer dataCalculationStrategy;
    @Schema (description = "超限值", example = "10000")
    private Integer overLimit;
    @Schema (description = "费用校验", example = "-1")
    private Integer costCheck;
    @Schema (description = "备用校验", example = "0")
    private Integer standByCheck;
    @Schema (description = "电流校验", example = "0")
    private Integer cl_check;
    @Schema (description = "限额校验", example = "-1")
    private Integer limitCheck;
    @Schema (description = "是否需要告警", example = "true")
    private Boolean needAlarm;
    @Schema (description = "房间 ID", example = "null")
    private Integer roomId;
    @Schema (description = "最大回路数", example = "1")
    private Integer maxLoopNumber;
    @Schema (description = "使用级别", example = "0")
    private Integer useLevel;
    @Schema (description = "是否启用（1 = 是）", example = "1")
    private Integer isEnabled;
    @Schema (description = "是否多档案（0 = 否）", example = "0")
    private Integer isMultipleArchive;
    @Schema (description = "扩展实体（嵌套对象）")
    private WaterMeterExtraEntityDTO extraEntity;
    @Schema (description = "安装位置", example = "")
    private String place;
    @Schema (description = "区域名称", example = "气象局")
    private String areaName;
    @Schema (description = "部门名称", example = "气象局")
    private String departmentName;
    @Schema (description = "采集器名称", example = "气象局办公楼")
    private String gatherName;
    @Schema (description = "表具型号名称", example = "07 三相电表 03")
    private String meteStyleName;
    @Schema (description = "规格名称", example = "5 (40) A")
    private String specificationName;
    @Schema (description = "用电性质", example = "总表")
    private String useNature;
    @Schema (description = "计量分项", example = "计量总表")
    private String subentry;
}